*(*a+1)[4] c语言里面能表示二维数组的元素吗

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:55:42
原题:
int a[3][5];,则以下不能正确表示该数组元素的表达式是()
a *(*a+3) b *(*a+1)[4]
c *(*(*a+1)) c *(&a[0][0]+1)
麻烦详细点
打错了点点`abcc是选项号`最后一个应该是d的

多选的话就是A、D 单选就是D
二维数组可以用一个指向指针的指针来引用它,也就是说他们是等价的。
a[0][0] **a 或者*a[0]是同一个单元。

我们来看看B,2个*加一个[](B化简了也就是a[0][1][4])多指了一次肯定不对,C也是三个(C化简了也就是a[0][1][0])都不知道指到什么地方去了。
我运行过了,编译器说了A、D都对,他老人家没什么意见,要是多选你就选A、D吧。
要是单选,那较针起来A还是有点问题的a的第一维是0~2这三个数那给它加3就数组越界了。所以D是最可靠的。